home *** CD-ROM | disk | FTP | other *** search
/ IRIX Installation Tools & Overlays 2002 November / SGI IRIX Installation Tools & Overlays 2002 November - Disc 4.iso / dist / motif21_dev.idb / usr / Motif-2.1 / include / Xm / ToggleBGP.h.z / ToggleBGP.h
C/C++ Source or Header  |  2002-10-15  |  9KB  |  287 lines

  1. /* 
  2.  *  @OSF_COPYRIGHT@
  3.  *  COPYRIGHT NOTICE
  4.  *  Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
  5.  *  ALL RIGHTS RESERVED (MOTIF). See the file named COPYRIGHT.MOTIF for
  6.  *  the full copyright text.
  7. */ 
  8. /* 
  9.  * HISTORY
  10. */ 
  11. /* $XConsortium: ToggleBGP.h /main/13 1996/03/29 18:56:49 pascale $ */
  12. /* (c) Copyright 1989, DIGITAL EQUIPMENT CORPORATION, MAYNARD, MASS. */
  13. /* (c) Copyright 1987, 1988, 1989, 1990, 1991, 1992 HEWLETT-PACKARD COMPANY */
  14.  
  15. /********************************************
  16.  *
  17.  *   No new fields need to be defined
  18.  *   for the Toggle widget class record
  19.  *
  20.  ********************************************/
  21.  
  22. #ifndef _XmToggleButtonGP_h
  23. #define _XmToggleButtonGP_h
  24.  
  25. #include <Xm/ToggleBG.h>
  26. #include <Xm/LabelGP.h>
  27.  
  28. #ifdef __cplusplus
  29. extern "C" {
  30. #endif
  31.  
  32. /*************************************************************/
  33. /* The  ToggleButton Gadget Cache Object's class and instance records*/
  34. /*************************************************************/
  35.  
  36.  
  37. typedef struct _XmToggleButtonGCacheObjClassPart
  38. {
  39.     int foo;
  40.  
  41. #ifdef _SGIMOTIF
  42.     _SgClassExtension    _SG_vendorExtension;
  43. #endif
  44.  
  45. } XmToggleButtonGCacheObjClassPart;
  46.  
  47.  
  48. typedef struct _XmToggleButtonGCacheObjClassRec 
  49. {
  50.     ObjectClassPart                     object_class;
  51.         XmExtClassPart                      ext_class;
  52.     XmLabelGCacheObjClassPart           label_class_cache;
  53.     XmToggleButtonGCacheObjClassPart    toggle_class_cache;
  54. } XmToggleButtonGCacheObjClassRec;
  55.  
  56. externalref XmToggleButtonGCacheObjClassRec xmToggleButtonGCacheObjClassRec;
  57.  
  58.  
  59. typedef struct _XmToggleButtonGCacheObjPart
  60.    unsigned char    ind_type;
  61.    Boolean        visible;
  62.    Dimension        spacing;
  63.    Dimension        indicator_dim;
  64.    Pixmap        on_pixmap; 
  65.    Pixmap        insen_pixmap; 
  66.    unsigned char    ind_on;
  67.    Boolean        fill_on_select;
  68.    Pixel        select_color;
  69.    GC            select_GC;
  70.    GC            background_gc;
  71.    
  72. #ifdef _SGIMOTIF
  73.    XtPointer    _SG_vendorExtension;
  74. #endif
  75.  
  76.    GC                   arm_GC;    /* used in menus when enableEtchedInMenu 
  77.                       is set. */
  78.    unsigned char        toggle_mode;
  79.    Boolean        reversed_select;
  80.    Pixmap               indeterminate_pixmap;
  81.    Pixmap               indeterminate_insensitive_pixmap;
  82.    Pixel                unselect_color;
  83.    GC                   unselect_GC;
  84.    GC                   indeterminate_GC;
  85.    GC                   indeterminate_box_GC;
  86.    Dimension        ind_left_delta;
  87.    Dimension        ind_right_delta;
  88.    Dimension        ind_top_delta;
  89.    Dimension        ind_bottom_delta;
  90. } XmToggleButtonGCacheObjPart;
  91.  
  92. typedef struct _XmToggleButtonGCacheObjRec
  93. {
  94.     ObjectPart                              object;
  95.     XmExtPart                            ext;
  96.     XmLabelGCacheObjPart                 label_cache;
  97.     XmToggleButtonGCacheObjPart             toggle_cache;
  98. } XmToggleButtonGCacheObjRec;
  99.  
  100.  
  101. /****************************************************
  102.  *
  103.  * Full class record declaration for Toggle class
  104.  *
  105.  ****************************************************/
  106.  
  107. typedef struct _XmToggleButtonGadgetClassPart
  108.  {
  109.    XtPointer                   extension;
  110.  
  111. #ifdef _SGIMOTIF
  112.    _SgClassExtension    _SG_vendorExtension;
  113. #endif
  114.  
  115.  } XmToggleButtonGadgetClassPart;
  116.  
  117.  
  118. typedef struct _XmToggleButtonGadgetClassRec {
  119.     RectObjClassPart                 rect_class;
  120.     XmGadgetClassPart              gadget_class;
  121.     XmLabelGadgetClassPart             label_class;
  122.     XmToggleButtonGadgetClassPart    toggle_class;
  123. } XmToggleButtonGadgetClassRec;
  124.  
  125.  
  126. externalref XmToggleButtonGadgetClassRec xmToggleButtonGadgetClassRec;
  127.  
  128. #ifdef _SGIMOTIF
  129.  
  130. typedef struct __SG_XmToggleGadgetExtPart {
  131.         
  132.   SgRenderIndicatorProc indicator_render;
  133.   SgRenderShadowsProc   indicator_render_shadows;
  134.   int                   indicator_visual_state;
  135.   visual_state_array    indicator_visual_array;
  136.   Pixel                 indicator_background;
  137.   shaderptr             indicator_shader;
  138.  
  139. }_SG_XmToggleGadgetExtPart;
  140.  
  141. typedef struct __SG_XmToggleGadgetExt {
  142.  
  143.   _SgInstanceExtensionRec     common;   /* Stuff all instance rec's have */
  144.   _SG_XmToggleGadgetExtPart   instance; /* Resources & instance var's */
  145.  
  146. } _SG_XmToggleGadgetExtRec, *_SG_XmToggleGadgetExt;
  147.  
  148. #define _SG_ToggleGadgetPtr(w) ((_SG_XmToggleGadgetExt)(((XmToggleButtonGadget)(w))->toggle._SG_vendorExtension))
  149.  
  150. #endif /* _SGIMOTIF */
  151.  
  152. typedef struct _XmToggleButtonGadgetPart
  153.    Boolean        indicator_set;
  154.    unsigned char    set;
  155.    unsigned char          visual_set; /* used for visuals and does not reflect
  156.                                        the true state of the button */
  157.    Boolean             Armed;
  158.    XtCallbackList       value_changed_CB,
  159.             arm_CB,
  160.                 disarm_CB;
  161.  
  162.    XmToggleButtonGCacheObjPart  *cache; /* Replace cache instance fields */
  163.                     /* with a pointer */
  164.  
  165. #ifdef _SGIMOTIF
  166.    _SG_XmToggleGadgetExt    _SG_vendorExtension;
  167. #endif
  168.  
  169. #ifdef _SGIMOTIF
  170.    /* this member is not used, see the cooresponding member in the ext. rec. 
  171.     * --- offer dec 97 */
  172. #endif /* _SGIMOTIF */
  173.    Dimension detail_shadow_thickness ;
  174. } XmToggleButtonGadgetPart;
  175.  
  176.  
  177.  
  178. /****************************************************************
  179.  *
  180.  * Full instance record declaration
  181.  *
  182.  ****************************************************************/
  183.  
  184. typedef struct _XmToggleButtonGadgetRec {
  185.     ObjectPart            object;
  186.     RectObjPart            rectangle;
  187.     XmGadgetPart        gadget;
  188.     XmLabelGadgetPart        label;
  189.     XmToggleButtonGadgetPart    toggle;
  190. } XmToggleButtonGadgetRec;
  191.  
  192.  
  193. /**********/
  194. /* MACROS */
  195. /**********/
  196.  
  197. /* Macros for cached instance fields */
  198.  
  199. #define TBG_IndType(w)        \
  200.     (((XmToggleButtonGadget) (w)) -> toggle.cache->ind_type)
  201. #define TBG_Visible(w)        \
  202.     (((XmToggleButtonGadget) (w)) -> toggle.cache->visible)
  203. #define TBG_Spacing(w)        \
  204.     (((XmToggleButtonGadget) (w)) -> toggle.cache->spacing)
  205. #define TBG_IndicatorDim(w)    \
  206.     (((XmToggleButtonGadget) (w)) -> toggle.cache->indicator_dim)
  207. #define TBG_OnPixmap(w)        \
  208.     (((XmToggleButtonGadget) (w)) -> toggle.cache->on_pixmap)
  209. #define TBG_InsenPixmap(w)    \
  210.     (((XmToggleButtonGadget) (w)) -> toggle.cache->insen_pixmap)
  211. #define TBG_IndOn(w)        \
  212.     (((XmToggleButtonGadget) (w)) -> toggle.cache->ind_on)
  213. #define TBG_FillOnSelect(w)    \
  214.     (((XmToggleButtonGadget) (w)) -> toggle.cache->fill_on_select)
  215. #define TBG_ReversedSelect(w)    \
  216.     (((XmToggleButtonGadget) (w)) -> toggle.cache->reversed_select)
  217. #define TBG_SelectColor(w)    \
  218.     (((XmToggleButtonGadget) (w)) -> toggle.cache->select_color)
  219. #define TBG_SelectGC(w)        \
  220.     (((XmToggleButtonGadget) (w)) -> toggle.cache->select_GC)
  221. #define TBG_BackgroundGC(w)    \
  222.     (((XmToggleButtonGadget) (w)) -> toggle.cache->background_gc)
  223. #define TBG_ArmGC(w)    \
  224.     (((XmToggleButtonGadget) (w)) -> toggle.cache->arm_GC)
  225. #define TBG_ToggleMode(w)    \
  226.     (((XmToggleButtonGadget) (w)) -> toggle.cache->toggle_mode)
  227. #define TBG_IndeterminatePixmap(w)    \
  228.     (((XmToggleButtonGadget) (w)) -> toggle.cache->indeterminate_pixmap)
  229. #define TBG_IndeterminateInsensitivePixmap(w)    \
  230.     (((XmToggleButtonGadget) (w)) ->    \
  231.      toggle.cache->indeterminate_insensitive_pixmap)
  232. #define TBG_IndeterminateGC(w)    \
  233.     (((XmToggleButtonGadget) (w)) -> toggle.cache->indeterminate_GC)
  234. #define TBG_IndeterminateBoxGC(w)    \
  235.     (((XmToggleButtonGadget) (w)) -> toggle.cache->indeterminate_box_GC)
  236. #define TBG_UnselectColor(w)    \
  237.     (((XmToggleButtonGadget) (w)) -> toggle.cache->unselect_color)
  238. #define TBG_UnselectGC(w)       \
  239.     (((XmToggleButtonGadget) (w)) -> toggle.cache->unselect_GC)
  240. #define TBG_IndLeftDelta(w)    \
  241.     (((XmToggleButtonGadget) (w)) -> toggle.cache->ind_left_delta)
  242. #define TBG_IndRightDelta(w)    \
  243.     (((XmToggleButtonGadget) (w)) -> toggle.cache->ind_right_delta)
  244. #define TBG_IndTopDelta(w)    \
  245.     (((XmToggleButtonGadget) (w)) -> toggle.cache->ind_top_delta)
  246. #define TBG_IndBottomDelta(w)    \
  247.     (((XmToggleButtonGadget) (w)) -> toggle.cache->ind_bottom_delta)
  248.  
  249. /***************************************/
  250. /* Macros for uncached instance fields */
  251.  
  252. #define TBG_IndicatorSet(w)    \
  253.     (((XmToggleButtonGadget) (w)) -> toggle.indicator_set)
  254. #define TBG_Set(w)        \
  255.     (((XmToggleButtonGadget) (w)) -> toggle.set)
  256. #define TBG_VisualSet(w)    \
  257.     (((XmToggleButtonGadget) (w)) -> toggle.visual_set)
  258. #define TBG_ValueChangedCB(w)    \
  259.     (((XmToggleButtonGadget) (w)) -> toggle.value_changed_CB)
  260. #define TBG_ArmCB(w)        \
  261.     (((XmToggleButtonGadget) (w)) -> toggle.arm_CB)
  262. #define TBG_DisarmCB(w)        \
  263.     (((XmToggleButtonGadget) (w)) -> toggle.disarm_CB)
  264. #define TBG_Armed(w)        \
  265.     (((XmToggleButtonGadget) (w)) -> toggle.Armed)
  266.  
  267. #define TBG_DetailShadowThickness(w) \
  268.     (((XmToggleButtonGadget) (w))->toggle.detail_shadow_thickness)
  269.  
  270. /******************************/
  271. /* Convenience Macros         */
  272. /******************************/
  273.  
  274. #define TBG_Cache(w)        (((XmToggleButtonGadget)(w))->toggle.cache)
  275. #define TBG_ClassCachePart(w)    \
  276.         (((XmToggleButtonGadgetClass)xmToggleButtonGadgetClass)->gadget_class.cache_part)
  277.  
  278.  
  279. #ifdef __cplusplus
  280. }  /* Close scope of 'extern "C"' declaration which encloses file. */
  281. #endif
  282.  
  283. #endif /* _XmToggleButtonGP_h */
  284. /* DON'T ADD ANYTHING AFTER THIS #endif */
  285.